901f71fbb50370784aedcf857e939100f0eb8584,Java_CCN/com/parc/ccn/data/security/KeyLocator.java,KeyLocator,decode,#XMLEventReader#,131
Before Change
public void decode(XMLEventReader reader) throws XMLStreamException {
XMLHelper.readStartElement(reader, KEY_LOCATOR_ELEMENT);
XMLHelper.readStartElement(reader, KEY_LOCATOR_TYPE_ELEMENT);
String strType = reader.getElementText();
_type = nameToType(strType);
if (null == _type) {
throw new XMLStreamException("Cannot parse key type: " + strType);
}
XMLHelper.readEndElement(reader);
if (type() == KeyLocatorType.KEY) {
XMLHelper.readStartElement(reader, PUBLISHER_KEY_ELEMENT);
String strKey = reader.getElementText();
try {
byte [] encodedKey = XMLHelper.decodeElement(strKey);
// This is a DER-encoded SubjectPublicKeyInfo.
_key = decodeKey(encodedKey);
} catch (IOException e) {
Library.logger().warning("Cannot parse stored key: " + strKey + " error: " + e.getMessage());
throw new XMLStreamException("Cannot parse key: " + strKey, e);
} catch (InvalidKeySpecException e) {
Library.logger().warning("Cannot turn stored key " + strKey + " into key of appropriate type.");
throw new XMLStreamException("Cannot turn stored key " + strKey + " into key of appropriate type.");
}
if (null == _key) {
throw new XMLStreamException("Cannot parse key: " + strKey);
}
XMLHelper.readEndElement(reader);
} else if (type() == KeyLocatorType.CERTIFICATE) {
XMLHelper.readStartElement(reader, PUBLISHER_CERTIFICATE_ELEMENT);
String strCert = reader.getElementText();
try {
byte [] encodedCert = XMLHelper.decodeElement(strCert);
After Change
public void decode(XMLEventReader reader) throws XMLStreamException {
XMLHelper.readStartElement(reader, KEY_LOCATOR_ELEMENT);
String strType = XMLHelper.readElementText(reader, KEY_LOCATOR_TYPE_ELEMENT);
_type = nameToType(strType);
if (null == _type) {
throw new XMLStreamException("Cannot parse key type: " + strType);
}
if (type() == KeyLocatorType.KEY) {
String strKey = XMLHelper.readElementText(reader, PUBLISHER_KEY_ELEMENT);
try {
byte [] encodedKey = XMLHelper.decodeElement(strKey);
// This is a DER-encoded SubjectPublicKeyInfo.
_key = decodeKey(encodedKey);
} catch (IOException e) {
Library.logger().warning("Cannot parse stored key: " + strKey + " error: " + e.getMessage());
throw new XMLStreamException("Cannot parse key: " + strKey, e);
} catch (InvalidKeySpecException e) {
Library.logger().warning("Cannot turn stored key " + strKey + " into key of appropriate type.");
throw new XMLStreamException("Cannot turn stored key " + strKey + " into key of appropriate type.");
}
if (null == _key) {
throw new XMLStreamException("Cannot parse key: " + strKey);
}
} else if (type() == KeyLocatorType.CERTIFICATE) {
String strCert = XMLHelper.readElementText(reader, PUBLISHER_CERTIFICATE_ELEMENT);
try {
byte [] encodedCert = XMLHelper.decodeElement(strCert);
CertificateFactory factory = CertificateFactory.getInstance("X.509");